<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 距离十一放假还有:xx天xx小时xx分xx秒 -->
  <button id="stop">暂停</button>
</body>
<script>

  // 回调函数: 把函数当成参数传到另一个函数中 => 优点:用户可以根据自己的需求决定执行的内容

  // 计时器  => 每隔固定的时间执行特定的内容

  // 设置计时器
  // setInterval(callback,interval)    每次调用此方法=>启动一个计时器
  // callback  回调函数(每隔一段时间执行的内容)   
  // interval  间隔时间(函数执行时的间隔 单位毫秒)
  // 返回值: 计时器的编号

  // 注意:回调函数并不是立即执行,而是从设置计时器到开始执行 需要先等待 对应的间隔时间

  // ----------------------------计时器回调函数传参-------------------------------

  // 计时器传入一个回调函数  每隔固定的时间执行该函数 如果函数需要传参

  // (1) 将函数嵌套在匿名函数中传入
  var timer1 = setInterval(function () {
    console.log(1, 11, 111, 1111);
  }, 1000);

  // (2) setInterval(callback,interval,arg1,arg2....argN)
  // setInterval的第三参数开始依次传入 => 都是作为该回调函数的实际参数
  var timer2 = setInterval(console.log, 1000, 2, 22, 222, 2222);

  // (3) 将函数调用改写为字符串形式传入  => 可以理解为函数内部(eval()每隔对应事件执行)
  var timer3 = setInterval("console.log('3',33,333,3333)", 1000);

  var stop = document.getElementById("stop");
  stop.onclick = function () {
    clearInterval(timer1);
    clearInterval(timer2);
    clearInterval(timer3);
  }





</script>

</html>